/*active button class onclick*/
/*active button class onclick*/
$('.leftbox a').click(function(e) {
    e.preventDefault();
    $('.leftbox a').removeClass('active');
    $(this).addClass('active');
    if(this.id === !'userInfo'){
        $('.userInfo').addClass('noshow');
    }
    else if(this.id === 'userInfo') {
        $('.userInfo').removeClass('noshow');
        $('.rightbox').children().not('.userInfo').addClass('noshow');
    }
    else if (this.id === 'changePassword') {
        $('.changePassword').removeClass('noshow');
        $('.rightbox').children().not('.changePassword').addClass('noshow');
    }
    else if(this.id === 'avatarUpload') {
        $('.avatarUpload').removeClass('noshow');
        $('.rightbox').children().not('.avatarUpload').addClass('noshow');
    }
    // else if(this.id === 'privacy') {
    //     $('.privacy').removeClass('noshow');
    //     $('.rightbox').children().not('.privacy').addClass('noshow');
    // }
    // else if(this.id === 'settings') {
    //     $('.settings').removeClass('noshow');
    //     $('.rightbox').children().not('.settings').addClass('noshow');
    // }
});

function updateUserInfo(){
    // 获取用户输入的信息
    var username = $("#username").val();
    var email = $("#email").val();
    var address = $("#address").val();

    if (!username){
        $("#error-message-username").value("用户名不能为空");
        return;
    }

    // 发送 AJAX 请求
    $.ajax({
        type: "POST",
        contentType: 'application/json',
        url: "/account/updateUserInfo",
        data: JSON.stringify({
            username: username,
            email: email,
            address: address
        }) ,
        success: function(response) {
            // 请求成功，处理返回的数据
            console.log(response);
        },
        error: function(xhr, status, error) {
            // 请求失败，处理错误信息
            console.log(error);
        }
    });
}

var confirmPasswordInput = document.getElementById('confirmNewPassword');
var passwordInput = document.getElementById('newPassword');

//标志变量

var isPasswordValid = false;
var isConfirmPasswordValid = false;

// 定义一个延迟发送请求的变量
var delayTimer;

// 监听输入框的 input 事件
passwordInput.addEventListener('input', function(event) {

    // 清除之前的延迟检查
    clearTimeout(delayTimer);

    var password = document.getElementById('newPassword').value;
    // 设置延迟，并在延迟结束后检查密码格式是否正确
    delayTimer = setTimeout(function() {
        // 检查密码是否符合要求
        var isValid = validatePassword(password);

        // 更新错误消息
        if (isValid) {
            $('#newPassword-error').text('');
            isPasswordValid = true;
        } else {
            var lengthRequirement = 8; // 密码长度要求
            var characterTypesRequirement = 2; // 字符类型数量要求
            $('#newPassword-error').text('密码长度应该至少包含' + lengthRequirement + '个字符，并且应包含' + characterTypesRequirement + '种及以上字符类型（例如大写字母、小写字母、数字和特殊字符）。');
            isPasswordValid = false;
        }
    }, 500); // 延迟时间设置为500毫秒
});


// 监听输入框的 input 事件
confirmPasswordInput.addEventListener('input', function(event) {
    // 清除之前的延迟检查
    clearTimeout(delayTimer);

    // 设置延迟，并在延迟结束后检查密码是否相等
    delayTimer = setTimeout(function() {
        var password = $('#newPassword').val();
        var confirmPassword = $('#confirmNewPassword').val();

        // 检查密码是否相等
        if (password === confirmPassword) {
            $('#confirmNewPassword-error').text('');
            isConfirmPasswordValid = true;
        } else {
            $('#confirmNewPassword-error').text('确认密码与新密码不一致');
            isConfirmPasswordValid = false;
        }
    }, 500); // 延迟时间设置为500毫秒
});

// 验证密码是否符合要求
function validatePassword(password) {
    var lengthRequirement = 8; // 密码长度要求
    var characterTypesRequirement = 2; // 字符类型数量要求

    // 检查密码长度
    if (password.length < lengthRequirement) {
        return false;
    }

    // 检查密码包含的字符类型数量
    var characterTypesCount = 0;
    if (/[a-z]/.test(password)) {
        characterTypesCount++;
    }
    if (/[A-Z]/.test(password)) {
        characterTypesCount++;
    }
    if (/\d/.test(password)) {
        characterTypesCount++;
    }
    if (/[@#$%^&*]/.test(password)) {
        characterTypesCount++;
    }

    if (characterTypesCount < characterTypesRequirement) {
        return false;
    }

    return true;
}

function savePassword(){
    var oldPassword = document.getElementById("oldPassword").value;
    var newPassword = document.getElementById("newPassword").value;
    var confirmPassword = document.getElementById("confirmNewPassword").value;

    if (!oldPassword) {
        $("oldPassword-error").text('当前密码不能为空');
        return;
    }
    if (!newPassword){
        $("newPassword-error").text('新密码不能为空');
        return;
    }
    if (!confirmPassword){
        $("confirmNewPassword-error").text('确认密码不能为空');
        return;
    }

    if (!isPasswordValid){
        return;
    }
    if (!isConfirmPasswordValid){
        return;
    }
    $.ajax({
        url: '/account/updatePassword',
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify({
            oldPassword: oldPassword,
            newPassword: newPassword
        }),
        success: function(data) {
            if (data === 'error'){
                $("#oldPassword-error").text('当前密码错误');
            }else {
                window.location.href = '/login';
            }
        },
        error: function(error) {
            console.log(error);
        }
    });
}

